<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2016/11/28
 * Time: 17:48
 */

namespace Admin\Model;


use Think\Model;

class AdminModel extends Model
{
    //自动验证
    protected $patchValidate = true;//开启批量验证
    protected $_validate = [
        ['username','require','用户名不能为空'],
        ['password','require','密码不能为空'],
    ];

    /**
     * 登录验证
     */
    public function testAdmin(){
        //获取账号和密码
        $username = I('post.username');
        $password = I('post.password');
        //利用账号查询
        $row = $this->where(['username'=>$username])->find();
        if(empty($row)){
            $this->error = '用户名不存在';
            return false;
        }
        //先把传入的密码进行加盐加密  再与数据库中的密码比较
        if(salt_mcrypt($password,$row['salt']) != $row['password']){
            $this->error = '密码错误';
            return false;
        }
        //登录成功后  把当前用户记录session
        session('ADMIN_LOGIN_SESSION',$row['token']);
        //记录登录的ip地址，和登录时间  存放到管理员表中
        $data['last_login_time'] = time();
        $data['last_login_ip'] = get_client_ip(1);
        if($this->where(['id'=>$row['id']])->save($data)){
            $this->error = '登录信息记录失败';
        }
        //将该用户的权限存入session中
//        $this->_getPermissions($row['id']);
        return true;
    }

    /**
     * 登录验证
     */
    public function loginValidate(){
        //首先验证session中的值   从session中获取用户信息
        $user_info = session('ADMIN_LOGIN_SESSION');
        //不存在session 返回false
        if(empty($user_info)){
            return false;
        }else{
            //存在session  在验证是否合法
            $row = $this->where(['username'=>$user_info['username'],'password'=>$user_info['password']])->select();
            if(empty($row)){
                //session中的值与数据库中不匹配
                return false;
            }
            return true;
        }
    }

    /**
     * 退出登录
     * 清空session和cookie
     * 清空对应管理员的token
     */
    public function logout(){
        //清空session和cookie
        session(null);
        cookie(null);
//        //清空对应管理员的token
//        $data = [
//            'token'=>'',
//            'token_create_time'=>0,
//            'id'=>$userinfo['id'],
//        ];
//        $this->save($data);
    }
}